﻿using MES_SystemUI.Context;
using MES_SystemUI.Domain;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Windows.Forms;

namespace MES_SystemUI.UI.DataDictUI.Stores
{
    public partial class StoreCategoriesListForm : MES_SystemUI.UI.DataDictUI.DataBaseForm
    {
        public StoreCategoriesListForm()
        {
            InitializeComponent();
            this.Load += StoreCategoriesListForm_Load;
        }

        private void StoreCategoriesListForm_Load(object sender, EventArgs e)
        {
            BindDataGridView();
        }
        public override void GetDataBind()
        {
            using (var ct = new Context.MES_SystemContext())
            {
                var que = from Sc in ct.storeCategories.ToList()
                          join U1 in ct.users on Sc.CreateUserId equals U1.UserId
                          join U2 in ct.users on Sc.LastUpdateUserId equals U2.UserId into AllPc
                          from pc in AllPc.DefaultIfEmpty()
                          select new
                          {
                              序号 = Sc.StoreCategorieId,
                              产品类别名称 = Sc.StoreCategorieName,
                              状态 = Sc.Status == 0 ? "启用" : "禁用",
                              创建人 = U1.UserName,
                              创建时间 = Sc.CreateTime,
                              最后修改人 = pc != null ? pc.UserName : null,
                              最后修改时间 = Sc.LastUpdateTime,
                          };
                if (!string.IsNullOrEmpty(textBox1.Text.Trim()))
                {
                    que = que.Where(x => Regex.IsMatch(x.产品类别名称, textBox1.Text));
                }
                if (!string.IsNullOrEmpty(dateTimePicker1.Text.Trim()))
                {
                    //DateTime dateTime1 = DateTime.Parse(dateTimePicker1.Value.ToString("yyyy-MM-dd") + " 00:00:00");
                    DateTime dateTime1 = DateTime.Parse(dateTimePicker1.Text + " 00:00:00");
                    que = que.Where(x => x.创建时间 >= dateTime1);
                }
                if (!string.IsNullOrEmpty(dateTimePicker2.Text.Trim()))
                {
                    //DateTime dateTime2 = DateTime.Parse(dateTimePicker2.Value.ToString("yyyy-MM-dd") + " 23:59:59");
                    DateTime dateTime2 = DateTime.Parse(dateTimePicker2.Text + " 23:59:59");
                    que = que.Where(x => x.创建时间 <= dateTime2);
                }
                if (comboBox1.Text != "全部")
                {
                    que = que.Where(x => x.状态 == comboBox1.Text);
                }
                Page = que.Count() % MainForm.SystemDataConfig.pageNumber == 0 ? que.Count() / MainForm.SystemDataConfig.pageNumber : que.Count() / MainForm.SystemDataConfig.pageNumber + 1;
                que = que.OrderByDescending(k => k.序号);
                que = que.Skip((NumberPage - 1) * MainForm.SystemDataConfig.pageNumber).Take(MainForm.SystemDataConfig.pageNumber);
                // 绑定数据
                dataGridView1.Columns.Clear();
                dataGridView1.DataSource = que.ToList();


            }
        }
        public override void OpenExcelCore(DataTable dt, MES_SystemContext c, int i)
        {
            StoreCategorie mode = new StoreCategorie()
            {
                StoreCategorieName = dt.Rows[i][0].ToString(),
                Status = int.Parse(dt.Rows[i][1].ToString()),
                CreateUserId = int.Parse(dt.Rows[i][2].ToString()),
            };
            c.storeCategories.Add(mode);
        }
        public override void StateCore(DataGridViewCellMouseEventArgs e, MES_SystemContext c, int state)
        {
            var Pc = c.storeCategories.Find(int.Parse(dataGridView1.Rows[e.RowIndex].Cells["序号"].Value.ToString()));
            Pc.Status = state;
        }
    }
}
